package 剑指offer.zw_61_扑克牌中的顺子;

class Solution {
    public static void main(String[] args) {
        int[] nums = {11,12,5,9,8};
        boolean b = isStraight(nums);
        System.out.println(b);
    }

    public static boolean isStraight(int[] nums) {
        if (nums.length < 5) return false;
        int f = 0, min = 14, max = -1;
        int[] t = new int[14];
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == 0 && ++f <4) continue;
            if (f>=4) return true;
            if (nums[i] < min) min = nums[i];
            if (nums[i] > max) max = nums[i];
            if (++t[nums[i]] >= 2) return false;
        }
        return (max - min) < 5;
    }


//    public static boolean isStraight(int[] nums) {
//        if (nums.length < 5) return false;
//        int f = 0, min = 14, max = -1;
//        int[] t = new int[14];
//        for (int i = 0; i < nums.length; i++) {
//            if (nums[i] == 0 && ++f ==4) return true;
//            if (nums[i] > 0 && nums[i] < min) min = nums[i];
//            if (nums[i] > 0 && nums[i] > max) max = nums[i];
//            if (++t[nums[i]] >= 2 && nums[i] != 0) return false;
//        }
//        return (max - min) < 5;
//    }
}